/*
    日志消息类：
        1.日志的输出时间 -- 时间
		2.日志等级 -- 分析
		3.源文件名称、源代码行号 -- 定位错误
		4.线程id -- 出错的线程
		5.日志主体 -- 出错原因
		6.日志器名称 -- 多日志器时使用
*/
#ifndef __M_MSG_H__
#define __M_MSG_H__

#include <iostream>
#include <string>
#include <thread>
#include "level.hpp"
#include "util.hpp"

using namespace std;

namespace log{
    class LogMsg{
    public:
        LogMsg(LogLevel::value level,
               const string file,
               size_t line,
               const string logger,
               const string payload):_ctime(util::Date::getTime()),
                                    _level(level),
                                    _file(file),
                                    _line(line),
                                    _tid(this_thread::get_id()),
                                    _logger(logger),
                                    _payload(payload)
                                    {
            

        }

    public:
        time_t _ctime;  //日志产生的时间戳
        LogLevel::value _level; //等级
        string _file;   //源文件名
        size_t _line;   // 源代码行号
        thread::id _tid;    //线程id
        string _payload;    //出错原因
        string _logger; //日志器名称
    };

}

#endif